#include "../import/head.h"
#include "get_odbc.h"
#include "../data_struct/head.h"
#include "../global/head.h"
#include "../macro/head.h"
#include "../msg/head.h"
#include "os_init.h"

///////////////////////////////////////////////////////////////////////////////////////////////
// 

namespace xos_sgsj
{
    get_odbc::get_odbc()
    {
		m_pOdbcMgr = 0;
		m_pConnect = 0;
    }

    get_odbc::~get_odbc()
    {
        term();
    }

    ///////////////////////////////////////////////////////////////////////////////////////////////
    // 

    int get_odbc::init()
    {
        int ret = 0;

        if( 0 == ret )
        {
            xos_odbc::create( g_pSysData->m_os.m_pXos, &m_pOdbcMgr );
            if( !m_pOdbcMgr )
            {
                ret = 1;
            }
        }

		if( 0 == ret )
		{
			ret = m_pOdbcMgr->init();
		}

        if( 0 == ret )
        {
            g_pSysData->m_os.m_pOdbcMgr = m_pOdbcMgr;
        }

        return ret;
    }

    int get_odbc::term()
    {
        int ret = 0;

        g_pSysData->m_os.m_pOdbcMgr = 0;
		g_pSysData->m_os.m_pConnect = 0;

		if( m_pConnect )
		{
			m_pConnect->release();
			m_pConnect = 0;
		}

        if( m_pOdbcMgr )
        {
			m_pOdbcMgr->term();
			m_pOdbcMgr->release();
			m_pOdbcMgr = 0;
        }

        return ret;
    }

} // xos_sgsj
